Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and application software that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. Electronic devices, such as high-end mobile phones, often contain a flash memory card, sometimes called an MMC card. They contain a flash memory card reader that is employed to read information on the flash memory cards that are inserted by end users.
Quite often, flash memory cards are used by the end user to store content such as digital photographs or audio files.
If firmware or firmware components are to be changed, it is often very tricky to update the firmware components in an electronic device. The electronic device must have sufficient memory available to download an update package and to execute an update process. Changes to firmware or firmware components of the electronic device must be performed in a fault tolerant mode and fault tolerant code are not easy to implement.
Typically, attempts to upgrade firmware and/or software in electronic devices, such as GSM mobile phones, are often hampered by limited user interaction capabilities and slow communication speeds on these devices. Typically, end user interactions cannot be relied upon to help fix problems with a device, as user input can be erroneous. In addition, some electronic devices may not have sufficient memory to store a large update package. Some devices with an update agent used for updating firmware and/or software are not capable of updating the update agent itself.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.